package com.wechat.entity;

import java.math.BigDecimal;
import java.util.Date;

public class UserBalanceRecord {

    /**
     * 账户充值
     */
    public static final int RECORD_TYPE_ACCOUNT_RECHARGE = 1;
    /**
     * 红包收入
     */
    public static final int RECORD_TYPE_REDPACKETIN = 2;
    /**
     * 红包支出
     */
    public static final int RECORD_TYPE_REDPACKETOUT = 3;
    /**
     * 提现
     */
    public static final int RECORD_TYPE_WITHDRAWCASH = 4;
    /**
     * 红包退款到余额
     */
    public static final int RECORD_TYPE_REDPACKETIN_REFUND = 5;
    /**
     * 退款
     */
    public static final int RECORD_TYPE_REFUND = 6;

    /**
     * 主键
     */
    private Integer id;

    /**
     * 流水分类:1充值 2 红包收入 3红包支出 4提现
     */
    private Integer recordType;

    /**
     * 用户Id
     */
    private Integer userId;

    /**
     * 流水名目
     */
    private String title;

    /**
     * 流水描述注解
     */
    private String description;

    /**
     * 总金额(包括实际金额和扣除金额)（如退款提现则表示真实退款金额）
     */
    private BigDecimal totalAmount;

    /**
     * 扣除金额(手续费,税费等) 例:用户转出佣金扣税,余额提现手续费
     */
    private BigDecimal taxesAmount;

    /**
     * 实际金额
     */
    private BigDecimal amount;

    /**
     * 当前账户余额
     */
    private BigDecimal balance;

    /**
     * 创建时间
     */
    private Date dateCreated;

    /**
     * 手工备注(退款时为微信退款单号)
     */
    private String remark;

    /**
     * 关联出题记录id
     */
    private Integer questionId;

    /**
     * 关联充值记录id
     */
    private Long rechargeId;

    /**
     * 关联答题记录id
     */
    private Integer answerId;

    /**
     * 主键
     */
    public Integer getId() {
        return id;
    }

    /**
     * 主键
     *
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 流水分类:1充值 2 红包收入 3红包支出 4提现
     */
    public Integer getRecordType() {
        return recordType;
    }

    /**
     * 流水分类:1充值 2 红包收入 3红包支出 4提现
     *
     * @param recordType
     */
    public void setRecordType(Integer recordType) {
        this.recordType = recordType;
    }

    /**
     * 用户Id
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 用户Id
     *
     * @param userId
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 流水名目
     */
    public String getTitle() {
        return title;
    }

    /**
     * 流水名目
     *
     * @param title
     */
    public void setTitle(String title) {
        this.title = title == null ? null : title.trim();
    }

    /**
     * 流水描述注解
     */
    public String getDescription() {
        return description;
    }

    /**
     * 流水描述注解
     *
     * @param description
     */
    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }

    /**
     * 总金额(包括实际金额和扣除金额)（如退款提现则表示真实退款金额）
     */
    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    /**
     * 总金额(包括实际金额和扣除金额)（如退款提现则表示真实退款金额）
     *
     * @param totalAmount
     */
    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    /**
     * 扣除金额(手续费,税费等) 例:用户转出佣金扣税,余额提现手续费
     */
    public BigDecimal getTaxesAmount() {
        return taxesAmount;
    }

    /**
     * 扣除金额(手续费,税费等) 例:用户转出佣金扣税,余额提现手续费
     *
     * @param taxesAmount
     */
    public void setTaxesAmount(BigDecimal taxesAmount) {
        this.taxesAmount = taxesAmount;
    }

    /**
     * 实际金额
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * 实际金额
     *
     * @param amount
     */
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    /**
     * 当前账户余额
     */
    public BigDecimal getBalance() {
        return balance;
    }

    /**
     * 当前账户余额
     *
     * @param balance
     */
    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    /**
     * 创建时间
     */
    public Date getDateCreated() {
        return dateCreated;
    }

    /**
     * 创建时间
     *
     * @param dateCreated
     */
    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    /**
     * 手工备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 手工备注
     *
     * @param remark
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * 关联出题记录id
     */
    public Integer getQuestionId() {
        return questionId;
    }

    /**
     * 关联出题记录id
     *
     * @param questionId
     */
    public void setQuestionId(Integer questionId) {
        this.questionId = questionId;
    }

    /**
     * 关联充值记录id
     */
    public Long getRechargeId() {
        return rechargeId;
    }

    /**
     * 关联充值记录id
     *
     * @param rechargeId
     */
    public void setRechargeId(Long rechargeId) {
        this.rechargeId = rechargeId;
    }

    /**
     * 关联答题记录明细id
     */
    public Integer getAnswerId() {
        return answerId;
    }

    /**
     * 关联答题记录明细id
     *
     * @param answerDetailId
     */
    public void setAnswerId(Integer answerDetailId) {
        this.answerId = answerId;
    }
}